//Vector and struct Demo
// By Ben

#include <iostream>
#include <vector>
using namespace std;

struct TBook{
	char bTitle[80];
	char bAuthor[80];
};

vector<TBook>Books;
void PrintBook(int bookID);

void AddBook(char *Title, char* Author){
	//Add a new book.
	TBook book;
	//Set book info
	strcpy_s(book.bTitle, Title);
	strcpy_s(book.bAuthor, Author);
	//Add book to the books vector
	Books.push_back(book);
}

void PrintAllBooks(){
	//Print out a list of all the books in the books vector.
	int i = 0;
	while (i < Books.size()){
		//Print single book
		PrintBook(i);
		i++;
	}
}

void PrintBook(int bookID){
	//Get the book.
	TBook book;
	//Extract book data
	book = Books[bookID];
	//Print out book info
	std::cout << "ID     : " << bookID << endl;
	std::cout << "Title  : " << book.bTitle << endl;
	std::cout << "Author : " << book.bAuthor << endl << endl;
}

int main(){

	AddBook("Learn C++", "Phil Jones");
	AddBook("Mastering C#", "John Jones");
	AddBook("Photoshop Advanced", "Bobby Brown");
	AddBook("Data Structures For C", "Jim Brown");

	//Print first book
	PrintBook(0);
	std::cout << "---------------------------------" << endl;
	std::cout << "Add Of Our Books" << endl;
	std::cout << "---------------------------------" << endl;
	//Print the remaining books
	PrintAllBooks();
	//Clear up
	Books.clear();

	system("pause");
	return 0;
}